package steed.util.system;

import java.util.UUID;

import steed.util.base.BaseUtil;
import steed.util.base.PropertyUtil;

public class SynchronizedKeyGenerator {
	
	/**
	 * 获取synchronized(key)的key(仅适合单机模式,不推荐使用)
	 * 
	 * @param prefix 前缀,不同前缀,即使key相同,返回的结果也不一样,防止多个方法获取到的key冲突
	 * @param key 同步key
	 * @return 
	 * 
	 * @see steed.util.system.SynchronizedUtil#getLock(String, String)
	 */
	@Deprecated
	public static String getKey(String prefix,String key){
		synchronized (prefix) {
			if (!PropertyUtil.getBoolean("standAloneMode")) {
				BaseUtil.getLogger().warn("steed.util.system.SynchronizedKeyGenerator.getKey(String, String)仅适合单机模式!集群模式请用steed.util.system.SynchronizedUtil!");
			}
			BaseUtil.getLogger().debug("获取{}的同步ID",prefix);
			String prefix2 = "SynchronizedKeyGenerator_"+prefix;
			String data = (String) DataCacheUtil.getData(key, prefix2);
			if (data == null) {
				data = UUID.randomUUID().toString();
			}
			DataCacheUtil.setData(key, prefix2, data, 1000*60*10L);
			return data;
		}
	}
}
